package main.com.cyz.LinkList;

import main.com.cyz.LinkList.Bean.ListNode;

/**
 * @author fox
 * @version 1.0
 * @description
 * 乐扣83
 * 给定一个已排序的链表的头 head ， 删除所有重复的元素，使每个元素只出现一次 。返回 已排序的链表 。

 * 示例 1：
 * 输入：head = [1,1,2]
 * 输出：[1,2]
 *
 * 示例 2：
 * 输入：head = [1,1,2,3,3]
 * 输出：[1,2,3]
 *
 * 提示：
 *
 * 链表中节点数目在范围 [0, 300] 内
 * -100 <= Node.val <= 100
 * 题目数据保证链表已经按升序 排列
 * @date 2024/5/17 19:41
 */
public class LeetCode83 {

    public ListNode point(ListNode head){

        if (head == null || head.next == null){
            return head;
        }

        ListNode a1 = head;
        ListNode a2 = head.next;

        while(a2!=null){
            if (a1.val == a2.val){
                a1.next = a2.next;
                a2 = a2.next;
            }else{
                a1 = a1.next;
                a2 = a2.next;
            }
        }
        return head;
    }

    public ListNode recursion(ListNode head){
        if (head == null || head.next == null){
            return head;
        }
        if (head.val == head.next.val){
            return recursion(head.next);
        }else{
            head.next = recursion(head.next);
            return head;
        }
    }

}
